package com.axcbd.demo.service;

import com.axcbd.demo.model.User;
import com.axcbd.demo.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.Optional;

@Service
public class UserService {

    @Autowired
    private UserRepository userRepo;

    // 注册功能
    public User register(User user) {
        // 在实际应用中，你可能需要对密码进行加密处理
        user.setCreatedAt(new Date());
        user.setUpdatedAt(new Date());
        return userRepo.save(user);
    }

    // 登录功能
    public User login(String identifier, String password) {
        // 尝试使用用户名登录
        Optional<User> userByUsername = userRepo.findByUserNameAndPassword(identifier, password);
        if(userByUsername.isPresent()) {
            return userByUsername.get();
        }

        // 如果用户名登录失败，尝试使用邮箱登录
        Optional<User> userByEmail = userRepo.findByEmailAndPassword(identifier, password);
        if(userByEmail.isPresent()) {
            return userByEmail.get();
        }

        // 如果两种方式都失败，返回 null 或抛出异常
        return null;
    }
}